Depth Limiting
再帰的なネストが可能なオブジェクト型のネストの深さを制限する
再帰的なネストが可能なオブジェクト型
code:gql
type Author {
authorId: ID!
}
type Post {
postId: ID!
title: String!
author: Author!
}
type Query {
author(id: ID!): Author!
}
Author と Post は互いに参照できるため、以下のようなクエリが実行可能
code:gql
query NestingQuery {
author(id: "123") {
authorId
posts {
postId
author {
authorId
posts {
postId
author {
authorId
posts {
postId
}
}
}
}
}
}
}
各フィールドを再計算する必要があるため、ネストが深くなればなるほど処理する回数やデータ量が増え、レスポンスを返す時間が伸びる
特に外部公開する GraphQL サーバで有用なセキュリティ対策
実現方法